<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Comment extends CI_Controller {

    //erstellen eines Arrays - //CI arbeitet mit Objekten in Arrays, die an die View gegeben werden
    public $data = array();

    //data Array für template.php füllen 
    //diese Werte können in den einzelnen Funktionen überschrieben werden - z.b. Titel 
    //model nur einmal laden, deswegen im construct
    function __construct() {
        parent::__construct();
        $this->data = array(
            'title' => 'Nested-Set',
            'content' => ''
        );
        $this->load->model('comment_model');
    }

    //Start-Methode 
    //index wird immer aufgerufen, wenn keine Methode nach dem Controller in der URL steht 
    //Alle Bücher anzeigen
    function index() {
        $this->data['comments'] = $this->comment_model->getItems(); //alle items in bookitems speichern
        $this->data['content'] = $this->load->view('comment/index', $this->data, true);
        $this->load->view('comment/template', $this->data);
    }

    //erstellen eines neuen Objekts durch das Model
    //zuweisen von Startwerten
    //Objekt in data-Array schreiben, damit es für die View bereitgestellt werden kann
    function create() {
        $comment = new $this->comment_model();
        $comment->title = "Neuer Kommentartitel";
        $comment->text = "Dein Kommentar";

        $this->data['comment'] = $comment;
        $this->data['content'] = $this->load->view('comment/_form', $this->data, true);
        $this->load->view('comment/template', $this->data);
    }

    function response($id = null) {
        if ($this->input->post('submit')) {
                echo "new";
                if ($this->input->post('title') && $this->input->post('text')) {
                    $comment = new $this->comment_model();
                    $comment->title = $this->input->post('title');
                    $comment->text = $this->input->post('text');
                    $comment->lft = $this->input->post('lft');
                    $comment->rgt = $this->input->post('rgt');
                    $insert_id = $this->comment_model->insert($comment); //Item anlegen und id des gerade zugefügten Items in insert_id schreiben
//                    $this->session->set_flashdata('message_info', 'Das Item mit der id: ' . $insert_id . ' wurde angelegt!');
                }
            redirect(base_url().'comment');
        }

        if ((int) $id > 0) {
            $comment = $this->comment_model->getItem($id);
            if (!empty($comment)) {
                $this->data['comment'] = $comment;
            }
        }
        $this->data['content'] = $this->load->view('comment/response_form', $this->data, true);
        $this->load->view('comment/template', $this->data);
    }
    //wenn post und book-Item anhand von vorhandener id erstellbar -> dann updaten, redirect to baseurl
    //wenn post und kein book-Item durch vorhandene id erstellbar -> dann neues erstellen und einfügen, redirect to baseurl
    //wenn kein post und id gesetzt, dann book-Item laden und für View vorbereiten
    function edit($id = null) {
        if ($this->input->post('submit')) {
            $comment = $this->comment_model->getItem($this->input->post('id'));
            if (!empty($comment)) {
                echo "update";
                $comment->title = $this->input->post('title');
                $comment->text = $this->input->post('text');
                $this->comment_model->update($comment);
//                $this->session->set_flashdata('message_info', 'Das Item mit der id: ' . $this->input->post('id') . ' aktualisiert!');
            } else {
                echo "new";
                if ($this->input->post('text') && $this->input->post('author')) {
                    $comment = new $this->comment_model();
                    $comment->title = $this->input->post('title');
                    $comment->text = $this->input->post('text');
                    $insert_id = $this->comment_model->insert($comment); //Item anlegen und id des gerade zugefügten Items in insert_id schreiben
//                    $this->session->set_flashdata('message_info', 'Das Item mit der id: ' . $insert_id . ' wurde angelegt!');
                }
            }
            redirect(base_url().'comment');
        }

        if ((int) $id > 0) {
            $comment = $this->comment_model->getItem($id);
            if (!empty($comment)) {
                $this->data['comment'] = $comment;
            }
        }
        $this->data['content'] = $this->load->view('comment/_form', $this->data, true);
        $this->load->view('comment/template', $this->data);
    }

    //book-Item anhand einer vorhandenen ID löschen
    //redirect to baseurl
    function delete($id) {
        if ((int) $id > 0) {
            $comment = $this->comment_model->getItem($id);
            if (!empty($comment)) {
//                $this->session->set_flashdata('message_info', 'Item mit der id: ' . $id . ' gelöscht!');
                $this->comment_model->delete($comment);
            } else {
//                $this->session->set_flashdata('message_error', 'Es wurde kein Item mit der id: ' . $id . ' gefunden');
            }
        }
        redirect(base_url().'comment');
    }

}
